package cn.itsource.nonameclass;

/**
 *	匿名内部类：
 *		1. 概念：
 *
 *		2. 作用：
 *
 *		3. 语法：
 *				多态接收匿名内部类对象
 *				接口/抽象类	对象名 = new 接口/抽象类(){
 *					匿名内部类类体
 *
 *					重写所有抽象方法;
 *				};
 */
public class MyInterfaceTest {

	public static void main(String[] args) {
		//创建实现类对象
		MyInterfaceImpl my = new MyInterfaceImpl();
		//调用实现类重写的方法
		my.test();
		
		//需求：如果上面的test()方法，只需要调用一次，但是我们却还要设计实现类，太麻烦，所以可以用匿名内部类方式实现
		/*
		 * 语法：
 *				多态接收匿名内部类对象
 *				接口/抽象类	对象名 = new 接口/抽象类(){
 *					匿名内部类类体
 *
 *					重写所有抽象方法;
 *				};
		 */
		IMyInterface my2 = new IMyInterface() {
			@Override
			public void test() {
				System.out.println("匿名内部类");
			}
		};
		
		//匿名内部类调用方法
		my2.test();
		
	}

}
